草庐IT

javascript promises、事件循环和作业队列

全部标签

javascript - 在 JavaScript 和 jQuery 中使用委托(delegate)事件处理程序是否存在性能缺陷?

我在我的JavaScript代码中使用委托(delegate)事件处理程序(jQuery),因此当单击动态添加的按钮时会发生一些事情。我想知道这是否存在性能缺陷?//Delegatedeventhandler$(document).on('click','#dynamicallyAddedButton',function(){console.log("Hello");});在性能方面,它与此相比如何?//Regulareventhandler$("#regularButton").on('click',function(){console.log("HelloAgain");});查看

javascript - 尝试将嵌套循环转换为递归函数

我正在尝试创建以下嵌套循环的递归版本并获得与引用代码相同的结果。示例如下。这是Codepen上的一个版本http://codepen.io/anon/pen/XbQMLv(代码的目的是仅输出索引中整数的唯一组合。)原始代码和输出:varlen=4;for(vara=0;a递归代码和输出:varlen=4;varend=3;vardata=[];varloop=function(index){if(index===end){console.log(data);return;}for(vari=index;i不确定我在这里遗漏了什么。 最佳答案

javascript - 在 Jquery 中创建带小数的循环

我需要创建一个可以用小数迭代的循环,如下所示:$("#btn").click(function(){for(i=parseFloat(0.00);i");}});但是结果并不如预期,我需要这样的东西:0.020.040.06....1.04....1.99....2感谢您的帮助。 最佳答案 Buttheresultisnotasexpected当我运行您的代码片段时,它会打印一些值,例如:0.15000000000000002这是因为javascript处理float的方式。表述不准确。解决方案是使用toFixed方法,如本answ

javascript - DataTable 1.10 - 禁用某些列的行选择事件

在最新版本(1.10)的DataTable中,section是在tableinit中设置的vartable=$('#companies').DataTable({language:{url:langUrl},select:true,....点击任何单元格将选择该行...但是,如果我用于滑动子行显示的第一列,我想避免行选择(第一列有一个'details-control'类..使用旧的Datatable版本,可以使用TableTools执行以下操作"fnPreRowSelect":function(e,nodes){if($(e.currentTarget).hasClass('detai

javascript - addEventListener ("loadedmetadata",有趣)没有正确运行,Firefox 错过事件

我写了一个页面,发现addEventListener("loadedmetadata",fun)在firefox上运行不正确我正在尝试修复一个旧软件的错误。在加载视频和页面时,该软件尝试在页面上绘制一些播放器Controller。它在Chrome和IE上运行良好,但无法绘制一些播放器Controller在Firefox上。我尝试调试几天,直到发现问题可以像这样简化:YourbrowserdoesnotsupportHTML5video.varvid=document.getElementById("myVideo");alert("Thevid");vid.addEventListen

javascript - 为什么这个简单的 for 循环没有按预期工作?

人们可能希望以下内容打印出a、b、c。vari,rowName;for(i=0;i相反,它打印出undefined、b、c。为什么?澄清一下:我知道如何完成这项工作;我很好奇的是为什么上面的方法不起作用。 最佳答案 它打印undefined的原因,b,c是因为如何forloop有效。for(initialization;condition;finalexpression)让我们分解您的for循环。初始化:i=0条件:i最终表达式:i++,rowName=['a','b','c'][i]第一次进入循环时,i设置为0.这是初始化步骤。然

javascript - 在不插入字符的情况下在 keydown 事件后关注字段

我有一个快捷键K。它应该专注于我的输入,但我不希望它在聚焦时插入字母K。$(document).keydown(function(event){if(event.which==75){$('input').focus();}}); 最佳答案 您可以使用event.preventDefault()来停止事件的标准行为。但是请注意,这将阻止在input中输入字母K。为此,您需要将keydown处理程序添加到input本身,以阻止事件传播到达document。试试这个:$(document).keydown(function(event)

javascript - 用于异步事件的 jQuery

我有一个html按钮需要异步触发3个事件。如果我有这个:$('#id').click(function(e){func1();});$('#id').click(function(e){func2();});$('#id').click(function(e){func3();});我能得到并发吗?或者如果一个功能需要很长时间,下一个功能会被阻止吗?Javascript如何处理这种顺序调用?谢谢, 最佳答案 “一个功能需要很长时间,下一个功能会被阻止”-您与我们共享的代码将以这种方式运行。您需要显式实现异步事件,因为@Zakaria

javascript - MS Edge 无法检测 <use> SVG 元素的委托(delegate)事件?

我想我在MSEdge中发现了一个令人不安的错误,它会影响动态创建的SVG元素。Edge似乎能够检测到直接绑定(bind)的事件,即$('.use').on('click',...),但是委托(delegate)事件$('body').on('click','use',...)被忽略。它最容易用JSFiddle来说明(在Chrome中测试,绑定(bind)都有效,而在Edge中委托(delegate)绑定(bind)不起作用):https://jsfiddle.net/Lr0arahb/有没有人对此问题有任何见解,并且知道可能的解决方法?最重要的是,我正在寻找一个我们仍然可以使用的解决方

javascript - 在拦截器中使用 `$mdToast` 触发循环依赖

问题:如何在拦截器中使用$mdToast而不触发错误?设置:拦截器定义:(function(){'usestrict';angular.module('app.components.http-errors-interceptors').factory('HttpError500Interceptor',HttpError500Interceptor);/*@ngInject*/functionHttpError500Interceptor($q,$mdToast,$filter){varinterceptor={};interceptor.responseError=responseE